package com.kgc.activityprovider.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

//表示当前是一个配置类
@Configuration
//启用Web环境下权限控制功能
@EnableWebSecurity
public class WebAppSecurityConfig extends WebSecurityConfigurerAdapter {
//    @Override
//    protected void configure(AuthenticationManagerBuilder builder) throws Exception {
//        //设置一个内存版的用户登录
//        builder
//                .inMemoryAuthentication().withUser("han").password("123").authorities("ADMIN");
//    }

    @Override
    protected void configure(HttpSecurity security) throws Exception {
        // 与 SpringSecurity 环境下请求授权相关
        security
                .authorizeRequests()     //对请求进行授权
                .antMatchers("/**") //放行登陆页面
                .permitAll()
                .antMatchers("/**") //放行静态资源
                .permitAll()
                .anyRequest()           //任何请求
                .authenticated()        //需要认证以后才可以访问
                .and()
                .csrf()
                .disable()      //禁用csrf
                .formLogin()  // 使用表单形式登录
                .loginPage("/admin/to/login")   //指定登陆页面
                .loginProcessingUrl("/security/do/login")  //指定处理登陆请求的地址
                .defaultSuccessUrl("/admin/to/main") //登陆成功后要去的地址
                .usernameParameter("loginAcct")		//用户名的请求参数
                .passwordParameter("userPswd")		//密码的请求参数
        ;
    }
}

